<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>gozerlib.wave.bot &mdash; GOZERWAVE v0.1 BETA documentation</title>
    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../../',
        VERSION:     '0.1 BETA',
        COLLAPSE_MODINDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="../../_static/jquery.js"></script>
    <script type="text/javascript" src="../../_static/doctools.js"></script>
    <link rel="top" title="GOZERWAVE v0.1 BETA documentation" href="../../index.html" />
    <link rel="up" title="gozerlib.wave" href="index.html" />
    <link rel="next" title="gozerlib.wave.event" href="event.html" />
    <link rel="prev" title="gozerlib.wave" href="index.html" /> 
  </head>
  <body>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="../../modindex.html" title="Global Module Index"
             accesskey="M">modules</a> |</li>
        <li class="right" >
          <a href="event.html" title="gozerlib.wave.event"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="index.html" title="gozerlib.wave"
             accesskey="P">previous</a> |</li>
        <li><a href="../../index.html">GOZERWAVE v0.1 BETA documentation</a> &raquo;</li>
          <li><a href="index.html" accesskey="U">gozerlib.wave</a> &raquo;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="module-gozerlib.wave.bot">
<h1>gozerlib.wave.bot<a class="headerlink" href="#module-gozerlib.wave.bot" title="Permalink to this headline">¶</a></h1>
<p>google wave bot.</p>
<dl class="class">
<dt id="gozerlib.wave.bot.WaveBot">
<em class="property">class </em><tt class="descclassname">gozerlib.wave.bot.</tt><tt class="descname">WaveBot</tt><big>(</big><em>name='gozertest'</em>, <em>image_url='http://gozerwave.appspot.com/assets/icon.png'</em>, <em>version='8'</em>, <em>profile_url='http://gozerwave.appspot.com/'</em><big>)</big><a class="headerlink" href="#gozerlib.wave.bot.WaveBot" title="Permalink to this definition">¶</a></dt>
<dd><p>Bases: <a title="gozerlib.botbase.BotBase" class="reference external" href="../botbase.html#gozerlib.botbase.BotBase"><tt class="xref docutils literal"><span class="pre">gozerlib.botbase.BotBase</span></tt></a>, <tt class="xref docutils literal"><span class="pre">waveapi.robot.Robot</span></tt></p>
<p>bot to implement google wave stuff.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><em>name</em> &#8211; bot&#8217;s name</li>
<li><em>image_url</em> (string) &#8211; url pointing to the bots image</li>
<li><em>version</em> (string) &#8211; the bots version</li>
<li><em>profile_url</em> (string) &#8211; url pointing to the bots profile</li>
</ul>
</td>
</tr>
</tbody>
</table>
<dl class="method">
<dt id="gozerlib.wave.bot.WaveBot.OnBlipSubmitted">
<tt class="descname">OnBlipSubmitted</tt><big>(</big><em>properties</em>, <em>context</em><big>)</big><a class="headerlink" href="#gozerlib.wave.bot.WaveBot.OnBlipSubmitted" title="Permalink to this definition">¶</a></dt>
<dd>new blip added. here is where the command dispatching takes place.</dd></dl>

<dl class="method">
<dt id="gozerlib.wave.bot.WaveBot.OnParticipantsChanged">
<tt class="descname">OnParticipantsChanged</tt><big>(</big><em>properties</em>, <em>context</em><big>)</big><a class="headerlink" href="#gozerlib.wave.bot.WaveBot.OnParticipantsChanged" title="Permalink to this definition">¶</a></dt>
<dd>invoked when any participants have been added/removed.</dd></dl>

<dl class="method">
<dt id="gozerlib.wave.bot.WaveBot.OnRobotAdded">
<tt class="descname">OnRobotAdded</tt><big>(</big><em>properties</em>, <em>context</em><big>)</big><a class="headerlink" href="#gozerlib.wave.bot.WaveBot.OnRobotAdded" title="Permalink to this definition">¶</a></dt>
<dd>invoked when the robot has been added.</dd></dl>

<dl class="method">
<dt id="gozerlib.wave.bot.WaveBot.newwave">
<tt class="descname">newwave</tt><big>(</big><em>context</em><big>)</big><a class="headerlink" href="#gozerlib.wave.bot.WaveBot.newwave" title="Permalink to this definition">¶</a></dt>
<dd>create a new wave.</dd></dl>

<dl class="method">
<dt id="gozerlib.wave.bot.WaveBot.say">
<tt class="descname">say</tt><big>(</big><em>waveid</em>, <em>txt</em><big>)</big><a class="headerlink" href="#gozerlib.wave.bot.WaveBot.say" title="Permalink to this definition">¶</a></dt>
<dd><p>output to the root id.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<li><em>waveid</em> (string) &#8211; id of the wave</li>
<li><em>txt</em> (string) &#8211; text to output</li>
</ul>
</td>
</tr>
<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">None</p>
</td>
</tr>
</tbody>
</table>
</dd></dl>

</dd></dl>

<div class="section" id="code">
<h2>code<a class="headerlink" href="#code" title="Permalink to this headline">¶</a></h2>
<div class="highlight-python"><table class="highlighttable"><tr><td class="linenos"><pre>  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134</pre></td><td class="code"><div class="highlight"><pre><span class="c"># gozerlib/wave/bot.py</span>
<span class="c">#</span>
<span class="c">#</span>

<span class="sd">&quot;&quot;&quot; google wave bot. &quot;&quot;&quot;</span>

<span class="c">## gozerlib imports</span>

<span class="kn">from</span> <span class="nn">gozerlib.persist.persist</span> <span class="kn">import</span> <span class="n">Persist</span>
<span class="kn">from</span> <span class="nn">gozerlib.botbase</span> <span class="kn">import</span> <span class="n">BotBase</span>
<span class="kn">from</span> <span class="nn">gozerlib.plugins</span> <span class="kn">import</span> <span class="n">plugs</span>
<span class="kn">from</span> <span class="nn">gozerlib.utils.generic</span> <span class="kn">import</span> <span class="n">getversion</span>
<span class="kn">from</span> <span class="nn">gozerlib.utils.auth</span> <span class="kn">import</span> <span class="n">finduser</span>
<span class="kn">from</span> <span class="nn">event</span> <span class="kn">import</span> <span class="n">WaveEvent</span>
<span class="kn">from</span> <span class="nn">waves</span> <span class="kn">import</span> <span class="n">Wave</span>

<span class="c">## waveapi imports</span>

<span class="kn">from</span> <span class="nn">waveapi</span> <span class="kn">import</span> <span class="n">events</span>
<span class="kn">from</span> <span class="nn">waveapi</span> <span class="kn">import</span> <span class="n">model</span>
<span class="kn">from</span> <span class="nn">waveapi</span> <span class="kn">import</span> <span class="n">robot</span>
<span class="kn">from</span> <span class="nn">waveapi</span> <span class="kn">import</span> <span class="n">document</span>
<span class="kn">from</span> <span class="nn">waveapi</span> <span class="kn">import</span> <span class="n">robot_abstract</span>

<span class="c">## generic imports</span>

<span class="kn">import</span> <span class="nn">logging</span>
<span class="kn">import</span> <span class="nn">cgi</span>
<span class="kn">import</span> <span class="nn">os</span>

<span class="n">waves</span> <span class="o">=</span> <span class="p">{}</span>

<span class="k">class</span> <span class="nc">WaveBot</span><span class="p">(</span><span class="n">BotBase</span><span class="p">,</span> <span class="n">robot</span><span class="o">.</span><span class="n">Robot</span><span class="p">):</span>

    <span class="sd">&quot;&quot;&quot; </span>
<span class="sd">        bot to implement google wave stuff. </span>

<span class="sd">        :param name: bot&#39;s name</span>
<span class="sd">        :type param: string</span>
<span class="sd">        :param image_url: url pointing to the bots image</span>
<span class="sd">        :type image_url: string</span>
<span class="sd">        :param version: the bots version </span>
<span class="sd">        :type version: string</span>
<span class="sd">        :param profile_url: url pointing to the bots profile</span>
<span class="sd">        :type profile_url: string</span>

<span class="sd">    &quot;&quot;&quot;</span>

    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s">&#39;gozertest&#39;</span><span class="p">,</span> 
                 <span class="n">image_url</span><span class="o">=</span><span class="s">&#39;http://gozerwave.appspot.com/assets/icon.png&#39;</span><span class="p">,</span>
                 <span class="n">version</span><span class="o">=</span><span class="s">&#39;8&#39;</span><span class="p">,</span>
                 <span class="n">profile_url</span><span class="o">=</span><span class="s">&#39;http://gozerwave.appspot.com/&#39;</span><span class="p">):</span>
        <span class="n">BotBase</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
        <span class="n">robot</span><span class="o">.</span><span class="n">Robot</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> <span class="n">version</span><span class="o">=</span><span class="n">version</span><span class="p">,</span> <span class="n">image_url</span><span class="o">=</span><span class="n">image_url</span><span class="p">,</span> <span class="n">profile_url</span><span class="o">=</span><span class="n">profile_url</span><span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">RegisterHandler</span><span class="p">(</span><span class="n">events</span><span class="o">.</span><span class="n">BLIP_SUBMITTED</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">OnBlipSubmitted</span><span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">RegisterHandler</span><span class="p">(</span><span class="n">events</span><span class="o">.</span><span class="n">WAVELET_PARTICIPANTS_CHANGED</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">OnParticipantsChanged</span><span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">RegisterHandler</span><span class="p">(</span><span class="n">events</span><span class="o">.</span><span class="n">WAVELET_SELF_ADDED</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">OnRobotAdded</span><span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">type</span> <span class="o">=</span> <span class="s">&quot;wave&quot;</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">iswave</span> <span class="o">=</span> <span class="bp">True</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">channels</span> <span class="o">=</span> <span class="n">Persist</span><span class="p">(</span><span class="s">&quot;gozerstore&quot;</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">sep</span> <span class="o">+</span> <span class="s">&quot;fleet&quot;</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">sep</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">sep</span> <span class="o">+</span> <span class="s">&quot;channels&quot;</span><span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">waves</span> <span class="o">=</span> <span class="n">waves</span>
 
    <span class="k">def</span> <span class="nf">OnParticipantsChanged</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>

        <span class="sd">&quot;&quot;&quot; invoked when any participants have been added/removed. &quot;&quot;&quot;</span>

        <span class="k">pass</span>

    <span class="k">def</span> <span class="nf">OnRobotAdded</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>

        <span class="sd">&quot;&quot;&quot; invoked when the robot has been added. &quot;&quot;&quot;</span>

        <span class="n">root_wavelet</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="n">GetRootWavelet</span><span class="p">()</span>
        <span class="n">root_wavelet</span><span class="o">.</span><span class="n">CreateBlip</span><span class="p">()</span><span class="o">.</span><span class="n">GetDocument</span><span class="p">()</span><span class="o">.</span><span class="n">AppendText</span><span class="p">(</span><span class="n">getversion</span><span class="p">(</span><span class="s">&#39;WAVE&#39;</span><span class="p">))</span>
        <span class="n">root_wavelet</span><span class="o">.</span><span class="n">CreateBlip</span><span class="p">()</span><span class="o">.</span><span class="n">GetDocument</span><span class="p">()</span><span class="o">.</span><span class="n">AppendText</span><span class="p">(</span><span class="s">&#39;see !help&#39;</span><span class="p">)</span>
        <span class="c">#blip = context.GetBlipById(properties[&#39;blipId&#39;])</span>
        <span class="c">#blip.CreateChild().GetDocument().SetText(getversion(&#39;WAVE&#39;))</span>
        <span class="c">#blip.CreateChild().GetDocument().SetText(&#39; .. see !help&#39;)</span>
        <span class="n">waveid</span> <span class="o">=</span> <span class="n">root_wavelet</span><span class="o">.</span><span class="n">waveId</span>
        <span class="c">#waveid = properties[&#39;blipId&#39;]</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">waves</span><span class="p">[</span><span class="n">waveid</span><span class="p">]</span> <span class="o">=</span> <span class="n">Wave</span><span class="p">(</span><span class="n">waveid</span><span class="p">)</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">properties</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span>
        <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s">&#39;joined &quot;</span><span class="si">%s</span><span class="s">&quot; (</span><span class="si">%s</span><span class="s">) wave&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">waveid</span><span class="p">,</span> <span class="n">root_wavelet</span><span class="o">.</span><span class="n">title</span><span class="p">))</span>

    <span class="k">def</span> <span class="nf">OnBlipSubmitted</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>

        <span class="sd">&quot;&quot;&quot; new blip added. here is where the command dispatching takes place. &quot;&quot;&quot;</span>

        <span class="n">event</span> <span class="o">=</span> <span class="n">WaveEvent</span><span class="p">()</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span>
        <span class="n">root_wavelet</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="n">GetRootWavelet</span><span class="p">()</span>
        <span class="c">#waveid = properties[&#39;blipId&#39;]</span>
        <span class="c">#blip = context.GetBlipById(properties[&#39;blipId&#39;])</span>
        <span class="n">waveid</span> <span class="o">=</span> <span class="n">root_wavelet</span><span class="o">.</span><span class="n">waveId</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">waves</span><span class="p">[</span><span class="n">waveid</span><span class="p">]</span> <span class="o">=</span> <span class="n">Wave</span><span class="p">(</span><span class="n">waveid</span><span class="p">)</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">properties</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span>
        <span class="n">logging</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;added </span><span class="si">%s</span><span class="s"> (</span><span class="si">%s</span><span class="s">) to the waves list&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">waveid</span><span class="p">,</span> <span class="n">root_wavelet</span><span class="o">.</span><span class="n">title</span><span class="p">))</span>

        <span class="c">#rootid = root_wavelet.GetId()</span>

        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">event</span><span class="o">.</span><span class="n">txt</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mf">2</span> <span class="ow">and</span> <span class="n">event</span><span class="o">.</span><span class="n">txt</span><span class="p">[</span><span class="mf">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;!&#39;</span><span class="p">:</span>
            <span class="n">event</span><span class="o">.</span><span class="n">txt</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">txt</span><span class="p">[</span><span class="mf">1</span><span class="p">:]</span>
            <span class="n">event</span><span class="o">.</span><span class="n">auth</span> <span class="o">=</span> <span class="n">event</span><span class="o">.</span><span class="n">userhost</span>
            <span class="n">plugs</span><span class="o">.</span><span class="n">dispatch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">)</span>

    <span class="k">def</span> <span class="nf">say</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">waveid</span><span class="p">,</span> <span class="n">txt</span><span class="p">):</span>

        <span class="sd">&quot;&quot;&quot;</span>
<span class="sd">            output to the root id. </span>

<span class="sd">            :param waveid: id of the wave </span>
<span class="sd">            :type waveid: string</span>
<span class="sd">            :param txt: text to output</span>
<span class="sd">            :type txt: string</span>
<span class="sd">            :rtype: None</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="k">try</span><span class="p">:</span>
            <span class="n">wave</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">waves</span><span class="p">[</span><span class="n">waveid</span><span class="p">]</span>
        <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span>
            <span class="n">logging</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;no wave found for </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">waveid</span><span class="p">)</span>
            <span class="k">return</span>

        <span class="k">if</span> <span class="n">wave</span><span class="p">:</span>
            <span class="n">wave</span><span class="o">.</span><span class="n">say</span><span class="p">(</span><span class="n">txt</span><span class="p">)</span>

    <span class="k">def</span> <span class="nf">newwave</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>

        <span class="sd">&quot;&quot;&quot;</span>
<span class="sd">            create a new wave. </span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="n">newwave</span> <span class="o">=</span> <span class="n">robot_abstract</span><span class="o">.</span><span class="n">NewWave</span><span class="p">(</span><span class="n">context</span><span class="p">)</span>
        <span class="n">logging</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;newwave: </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="nb">dir</span><span class="p">(</span><span class="n">newwave</span><span class="p">))</span>
        <span class="k">return</span> <span class="n">newwave</span>
</pre></div>
</td></tr></table></div>
</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
            <h3><a href="../../index.html">Table Of Contents</a></h3>
            <ul>
<li><a class="reference external" href="">gozerlib.wave.bot</a><ul>
<li><a class="reference external" href="#code">code</a></li>
</ul>
</li>
</ul>

            <h4>Previous topic</h4>
            <p class="topless"><a href="index.html"
                                  title="previous chapter">gozerlib.wave</a></p>
            <h4>Next topic</h4>
            <p class="topless"><a href="event.html"
                                  title="next chapter">gozerlib.wave.event</a></p>
            <h3>This Page</h3>
            <ul class="this-page-menu">
              <li><a href="../../_sources/gozerlib/wave/bot.txt"
                     rel="nofollow">Show Source</a></li>
            </ul>
          <div id="searchbox" style="display: none">
            <h3>Quick search</h3>
              <form class="search" action="../../search.html" method="get">
                <input type="text" name="q" size="18" />
                <input type="submit" value="Go" />
                <input type="hidden" name="check_keywords" value="yes" />
                <input type="hidden" name="area" value="default" />
              </form>
              <p class="searchtip" style="font-size: 90%">
              Enter search terms or a module, class or function name.
              </p>
          </div>
          <script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../../genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="../../modindex.html" title="Global Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="event.html" title="gozerlib.wave.event"
             >next</a> |</li>
        <li class="right" >
          <a href="index.html" title="gozerlib.wave"
             >previous</a> |</li>
        <li><a href="../../index.html">GOZERWAVE v0.1 BETA documentation</a> &raquo;</li>
          <li><a href="index.html" >gozerlib.wave</a> &raquo;</li> 
      </ul>
    </div>
    <div class="footer">
      &copy; Copyright 2009, Bart Thate.
      Last updated on Nov 14, 2009.
      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.3.
    </div>
  </body>
</html>